Field of the Invention
The present invention relates to a method for monitoring the correct execution of software programs in which the overwriting of return addresses is prevented.
The correct execution of software programs is a constant aim that is being achieved to an ever increasing extent through the provision of a wide range of measures.
Whereas, previously, unreliable hardware and programming errors were the primary causes of software programs being executed incorrectly, deliberate manipulation of program execution is now taking on an ever greater significance.
Deliberate manipulation of program execution means that it is possible, for example, to skip particular program parts, which allows checks establishing access authorization to be bypassed, for example.
This may become a serious problem in smart cards, to quote a by no means exclusive example, because, on the one hand, such cards are becoming more and more widespread in security-related areas (for example for access checks, monetary transactions etc.), in particular, and, on the other hand, they can readily be made a target for attempts at manipulation, owing to the fact that it is naturally impossible for them to be constantly monitored or supervised.
A multiplicity of security precautions already built into the smart card results in a very slim chance of a successful improper manipulation. Nevertheless, improper manipulations cannot be entirely eliminated.
The present invention is therefore based on the object of finding a method of monitoring the correct execution of software programs, by use of which, in particular, deliberate manipulation of program execution can be largely eliminated.